// 路由前置守卫
import router from ".";
import { tokenStore } from "@/store";

// 前置守卫   进入某个页面前
router.beforeEach(async (to, from, next)=>{
    let whiteList = ['/login']; // 白名单

    debugger;
    const token = tokenStore().token;
    if (token){
        // 路由没加载
        if ( ! router.load){
            // 当前用户已登录, 获取路由
            let routers = await menuApi.getRouters();
            

            // 遍历所有的routers, 添加到路由下
            for (let r of routers.data) {
                let info = {
                    path: r.path,   // vue-cli      vite
                    component: modules['/src/components'+r.component],
                };

                // 动态添加路由， 将当前路由添加到name为home的下面
                router.addRoute('home', info);
            }

            console.log(router.getRoutes());

            router.load = true;
            next({...to, replace: true});
        } else {
            // 如果路由已经加载过，直接放行
            next();
        }
    } else if (whiteList.includes(to.path)){
        // 白名单直接放行
        next();
    } else {
        // 没登录, 就去登录页
        next('/login');
    }
});
